import axios from 'axios';
import {ElMessage} from "element-plus"

// 创建 axios 实例
const request = axios.create({
  baseURL: 'http://localhost:9090', // 基础URL，从环境变量中读取
  timeout: 30000, // 超时时间
});

// 请求拦截器
request.interceptors.request.use(
  config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
    return config;
  },
  error => {
    // 请求错误处理
    Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  response => {
    let res = response.data;

    if(typeof res === 'string'){
        res = res ? JSON.parse(res) : res
    }
    return res;
  },
  error => {
    // 网络异常或超时处理
      if (error.response.status === 404){
          ElMessage.error('未找到请求接口')
      }else if (error.response.status === 500){
          ElMessage.error('服务器异常,查看后端控制台')
      }else{
          console.log(ElMessage.error)
      }
    return Promise.reject(error);
  }
);

// 封装 GET 和 POST 方法
export default request
